module.exports = {


  friendlyName: 'View app library',


  description: 'Display "App library" page.',


  exits: {

    success: {
      viewTemplatePath: 'pages/app-library'
    },
    badConfig: { responseType: 'badConfig' },
  },


  fn: async function () {

    if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.appLibrary) || !sails.config.builtStaticContent.appLibrary) {
      throw {badConfig: 'builtStaticContent.appLibrary'};
    }

    let allApps = sails.config.builtStaticContent.appLibrary;

    let macOsApps = _.filter(allApps, (app)=>{
      return app.platform === 'darwin';
    });
    macOsApps = _.sortBy(macOsApps, (app)=>{
      return app.name.toLowerCase();
    });

    let windowsApps = _.filter(allApps, (app)=>{
      return app.platform === 'windows';
    });
    windowsApps = _.sortBy(windowsApps, (app)=>{
      return app.name.toLowerCase();
    });
    // Respond with view.
    return {
      allApps,
      windowsApps,
      macOsApps,
      algoliaPublicKey: sails.config.custom.algoliaPublicKey,
    };

  }


};
